package com.swj.modules.system.service;

import com.swj.common.core.model.SysRole;
import com.swj.common.core.model.SysUser;

import java.util.List;
import java.util.Set;

/**
 * @Description 角色业务接口
 * @author swj
 * @CreateTime 2019/6/14 15:57
 */
public interface ISysRoleService {

    /**
     * 根据条件分页查询角色数据
     *
     * @param role 角色信息
     * @return 角色数据集合信息
     */
    List<SysRole> selectRoleList(SysRole role);

    /**
     * 根据用户ID查询角色权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    Set<String> selectRolePermissionByUserId(String userId);

    /**
     * 查询所有角色
     *
     * @return 角色列表
     */
    List<SysRole> selectRoleAll();

    /**
     * 根据用户ID查询角色列表
     *
     * @param userId 用户id
     * @return 角色列表
     */
    List<SysRole> selectRoleByUserId(String userId);

    /**
     * 根据用户ID查询角色列表
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    List<SysRole> selectRolesByUserId(String userId);

    /**
     * 添加user-role的关联关系
     * @param user user信息
     */
    void insertUserRoleRelation(SysUser user);

    /**
     * 删除user-role的关联关系
     * @param user user实体信息
     * @return 删除数据库行数
     */
    int deleteUserRoleRelation(SysUser user);

    /**
     * 删除user-role的关联关系
     * @param userIds 用户id集合
     * @return 删除数据库行数
     */
    int deleteUserRoleRelations(String[] userIds);


}

